Ce serveur fait le pont entre votre navigateur (qui ne peut pas ouvrir de socket TCP brute) et l’IPX800 sur le port 9870. Il reçoit des requêtes HTTP POST et les transforme en commandes M2M.
Ouvrez un terminal (sur la machine proxy) et exécutez :
mkdir m2m-proxy
cd m2m-proxy
npm init -y
npm install express cors
server.jsCopiez-collez ce code (il inclut le support CORS pour que votre navigateur accepte les requêtes) :
const express = require('express');
const net = require('net');
const cors = require('cors');
const app = express();
app.use(cors()); // Autorise toutes les origines (indispensable pour une page web locale)
app.use(express.json());
app.post('/m2m', (req, res) => {
const { host, command, port = 9870 } = req.body;
if (!command || !host) {
return res.status(400).json({ error: 'Missing host or command' });
}
const client = new net.Socket();
client.connect(port, host, () => {
client.write(command + '\r\n');
let response = '';
client.on('data', (data) => response += data.toString());
client.on('end', () => {
res.json({ ok: true, response: response.trim() });
});
client.on('error', (err) => {
res.status(500).json({ error: err.message });
client.destroy();
});
setTimeout(() => client.end(), 500); // Timeout sécurité
});
client.on('error', (err) => {
res.status(500).json({ error: `TCP connection failed: ${err.message}` });
});
});
app.listen(3800, () => {
console.log('✅ Proxy M2M opérationnel sur http://0.0.0.0:3800/m2m');
});
node server.js
Si tout va bien, vous verrez : ✅ Proxy M2M opérationnel sur http://0.0.0.0:3800/m2m
192.168.1.145).3800).cors() (code ci-dessus).curl sur la machine proxy : curl -X POST http://localhost:3800/m2m -H "Content-Type: application/json" -d '{"host":"192.168.1.233","command":"GetOutputs"}'
💡 Une fois le proxy actif, toutes les commandes M2M (Set, Get, BitMask, Reset…) seront envoyées automatiquement depuis l’interface, sans avoir à copier/coller.